﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using ProcessoSeletivo.DAO;

public partial class admin_UsuarioCad : System.Web.UI.Page
{
    #region " Load "

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["Acao"] = true;

            ViewState["cod_endereco_end"] = -1;

            if (Request["des_login_usu"] == null)
            {
                lblTitulo.Text = "Inclusão de usuário";
            }
            else
            {
                lblTitulo.Text = "Alteração de usuário";

                using (Usuario objUser = new Usuario()) 
                {
                    DataView lDataView = objUser.ConsultarUsuario(Request["des_login_usu"]);

                    if (lDataView.Table.Rows.Count > 0)
                    {
                        nom_usuario_usu.Text = lDataView.Table.Rows[0]["nom_usuario_usu"].ToString();
                        des_login_usu.Text = lDataView.Table.Rows[0]["des_login_usu"].ToString();
                        des_login_usu.Enabled = false;
                        rfvSenha.Visible = false;

                        ViewState["cod_endereco_end"] = lDataView.Table.Rows[0]["cod_endereco_end"];

                        using (Endereco objEnd = new Endereco())
                        {
                            lDataView = objEnd.ConsultarEndereco(Convert.ToInt32(ViewState["cod_endereco_end"]));

                            if (lDataView.Table.Rows.Count > 0)
                            {
                                des_logradouro_end.Text = lDataView.Table.Rows[0]["des_logradouro_end"].ToString();
                                des_bairro_end.Text = lDataView.Table.Rows[0]["des_bairro_end"].ToString();
                                nom_uf_est.SelectedValue = lDataView.Table.Rows[0]["nom_uf_est"].ToString();
                                cod_cidade_cid.SelectedValue = lDataView.Table.Rows[0]["cod_cidade_cid"].ToString();
                                num_cep_end.Text = lDataView.Table.Rows[0]["num_cep_end"].ToString();
                                num_endereco_end.Text = lDataView.Table.Rows[0]["num_endereco_end"].ToString();
                            }
                        }
                    }
                    else 
                    {
                        Response.Redirect("Usuario.aspx");
                    }
                }
            }
        }
    }

    #endregion

    #region " Botões "

    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        if ((bool)Session["Acao"])
        {
            DataSet lDataSet;
            int cod_endereco_end = Convert.ToInt32(ViewState["cod_endereco_end"]);

            using (Endereco objEnd = new Endereco())
            {
                lDataSet = objEnd.ConsultarEndereco(cod_endereco_end).Table.DataSet;

                if (cod_endereco_end == -1)
                {
                    lDataSet.Tables[0].Rows.Add(lDataSet.Tables[0].NewRow());
                }

                lDataSet.Tables[0].Rows[0]["des_logradouro_end"] = des_logradouro_end.Text;
                lDataSet.Tables[0].Rows[0]["des_bairro_end"] = des_bairro_end.Text;
                lDataSet.Tables[0].Rows[0]["cod_cidade_cid"] = cod_cidade_cid.SelectedValue;
                lDataSet.Tables[0].Rows[0]["num_cep_end"] = num_cep_end.Text;
                lDataSet.Tables[0].Rows[0]["num_endereco_end"] = num_endereco_end.Text;

                if (cod_endereco_end == -1)
                {
                    cod_endereco_end = objEnd.IncluirEndereco(lDataSet);
                }
                else
                {
                    lDataSet.Tables[0].Rows[0]["cod_endereco_end"] = cod_endereco_end;
                    objEnd.AlterarEndereco(lDataSet);
                }
            }

            using (Usuario objUser = new Usuario())
            {
                lDataSet = objUser.ConsultarUsuario("-1").Table.DataSet;
                lDataSet.Tables[0].Rows.Add(lDataSet.Tables[0].NewRow());

                lDataSet.Tables[0].Rows[0]["nom_usuario_usu"] = nom_usuario_usu.Text;
                lDataSet.Tables[0].Rows[0]["des_login_usu"] = des_login_usu.Text;
                lDataSet.Tables[0].Rows[0]["cod_endereco_end"] = cod_endereco_end;

                if (des_senha_usu.Text != "")
                {
                    lDataSet.Tables[0].Rows[0]["des_senha_usu"] = FormsAuthentication.HashPasswordForStoringInConfigFile(des_senha_usu.Text, "sha1");
                }

                if (Request["des_login_usu"] == null)
                {
                    objUser.IncluirUsuario(lDataSet);
                }
                else
                {
                    objUser.AlterarUsuario(lDataSet);
                }
            }

            Session["Acao"] = false;
        }

        Response.Redirect("Usuario.aspx");
    }

    #endregion
}